Usually, conventional electronic devices rely on software execution to perform corresponding functions. In common software architectures, communication protocols among different program parts may be not unified because of different software programmers, different instruction formats, or other factors for different program parts corresponding to different functions.
As illustrated in FIG. 1, it is a diagram showing a related art gateway firmware. In this example, the gateway 1 includes a micro-controller 11. If a developer wants to configure the gateway 1 to connect to an external sensor 2 via a radio frequency (RF) module 12 and to transmit RF signals, a sensor operating system 111 is coded for the gateway 1 and the sensor operating system 111 has an independent sensor database 112 for storing definition of data and instructions of sensors.
In addition, if the developer wants to configure the gateway to be able to establish point-to-point (P2P) connection to a computer or a mobile phone, the developer needs to create a P2P connecting module 113 and the P2P connecting module 113 needs to have an independent main data base 114 for storing definition of data and instructions corresponding to P2P connecting function. Besides, if the developer wants to configure the gateway 1 to be able for providing setting function of the sensor 2 via a web page to a user, the developer needs to create a web page connecting module 115 and the web page connecting module 115 needs to have an independent web page data base 116 for storing definition of data and instructions corresponding to web page connecting function. In other words, if the gateway 1 is desired to be connected to more different external devices, e.g. IP cameras, Wi-Fi devices or other devices, different independent function modules and databases corresponding to different connecting functions need to created and that is a complicated task.
As mentioned above, when each system, module and database are coded by different programmers, their definitions of instruction formats and data may be different. Consequently, when these systems, modules and databases are integrated to construct a main operating system of the gateway 1, converting, compiling and integrating tasks may be necessary in case that communication protocols are different. That causes difficulty on development and increases high error occurrence rate.
Besides, when the developer wants to port certain programs to other electronic devices, e.g. porting the P2P connecting module 113 to a second gateway so as to enable the second gateway being able to provide P2P connecting function, porting may confront difficulties because the definition of the instruction format and data is different from programs already existed in the second gateway. Consequently, the developer needs to write independent programs for the second gateway to implement required functions and that causes lot of trouble.